package cn.baimo.config;

/**
 * ClassName: WebMvcConfig
 * Description:
 * date: 2020/8/20 0020 16:37:49
 *
 * @author BaiMo
 * @since JDK 1.8
 */

import cn.baimo.controller.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
    /**
     * Description:
     * 由于Spring Boot 默认资源路径配置的问题，
     * 使用IDEA开发Spring Boot应用时，
     * 会导致一个问题————浏览器、编辑器 不能同时访问 JS 等资源。
     * 这时往往通过配置以下代码，来实现同时访问资源文件的效果
     *
     * @param
     * @return
     * @author: BaiMo
     * @date: 2020/8/20 0020 17:15:18
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        if (!registry.hasMappingForPattern("/static/**")) {
            registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        }
        super.addResourceHandlers(registry);
    }

    /**
     * Description:这里设置不被拦截的路径，根据自己需求进行添加，主要是关于静态资源方面的
     *
     * @param
     * @return
     * @author: BaiMo
     * @date: 2020/8/20 0020 17:16:21
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //注册TestInterceptor拦截器
        InterceptorRegistration registration = registry.addInterceptor(new LoginInterceptor());
        registration.addPathPatterns("/**"); //所有路径都被拦截
        registration.excludePathPatterns(//添加不拦截路径
                "/user/login", //放行登录方法
                "/user/toLoginPage", //放行登录页面
                "/user/register", //放行注册页面
                "/index", "/",//放行主页面
                "/user/senCode",//放行验证码
                "/static/**"    //放行所有静态资源
        );
    }

}